Secure network access control

ABSTRACT

A new approach to network security includes manipulating an access point such that an initial communication from an external device is passed to a restricted subset of a computing network including a gatekeeper. The gatekeeper is configured to enforce a security policy against the external device before granting access to a less-restricted subset of the computing network. If requirements of the security policy are satisfied, then the gatekeeper reconfigures the access point such that further communication from the external device may be received by elements of the less-restricted subset. Enforcement of the security policy optionally includes performing a security audit of the external device.

CROSSREFEREENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. Non-Provisional patent application Ser. No. 14/175,687 filed on Feb. 7, 2014, which

-   is a continuation-in-part of co-pending U.S. Non-Provisional patent     application Ser. No. 13/523,858 filed Jun. 14, 2012 (now U.S. Pat.     No. 8,677,450 issued Mar. 18, 2014), which -   is a continuation of U.S. Non-Provisional patent application Ser.     No. 13/371,381 filed Feb. 10, 2012 (now U.S. Pat. No. 8,347,350     issued Jan. 1, 2013), which -   is a continuation of U.S. Non-Provisional patent application Ser.     No. 13/157,309 filed Jun. 10, 2011 (now U.S. Pat. No. 8,117,645     issued Feb. 14, 2012), which -   is a continuation of U.S. Non-Provisional patent application Ser.     No. 12/273,037 filed Nov. 18, 2008 (Now U.S. Pat. No. 8,051,460     issued Nov. 1, 2011), which -   is a continuation of U.S. Non-Provisional patent application Ser.     No. 10/949,179 filed Sep. 24, 2004 (now U.S. Pat. No. 7,523,484     issued Apr. 21, 2009), which in turn claims benefit and priority to     U.S. Provisional Patent Application No. 60/505,582 entitled     “Gatekeeper Inventions for Controlling Access to a Corporate     Network” and filed Sep. 24, 2003, and of U.S. Provisional Patent     Application No. 60/513,080 entitled “Gatekeeper Invention for     Controlling Access to a Corporate Network Using 802.1x” and filed     Oct. 21, 2003. This application is also related to U.S. Patent     Applications:

Ser. No. 13/157,308 filed Jun. 10, 2011;

Ser. No. 13/523,849 filed Jun. 14, 2012;

Ser. No. 13/523,854 filed Jun. 14, 2012;

Ser. No. 13/523,856 filed Jun. 14, 2012; and

Ser. No. 12/157,310 filed Jun. 10, 2011.

The disclosures of all the above patent applications are hereby incorporated herein by reference.

BACKGROUND

Field of the Invention

The invention is in the field of computing systems and more specifically in the field of network security.

Related Art

Several approaches to controlling external access to computing networks have been developed. The goals in developing these approaches include limiting access to authorized users and assuring that computing devices employed by these users do not include malicious computing code such as viruses, worms, or Trojan horses. The need for access control has grown with users' demands for accessing secure networks over the Internet and from personal devices such as laptop computers and personal digital assistants.

A first level of access control is achieved by requiring authentication of a user. This may be accomplished by requiring the user to enter a username and password or by reading a MAC address or other identifying information from an access device. In some systems, a network switch is programmed to grant access to a secure network only after proper authentication is achieved. Systems capable of using this approach include those using a proprietary VMPS protocol from Cisco Systems, Inc. of San Jose, Calif. or using a IEEE 802.1x standard protocol.

Reliance on mere user authentication includes several disadvantages. For example, there are no provisions to assure that an access device used by the authenticated user meets network security policies. The access device may have out-of-date virus software, may have security vulnerabilities, or may be otherwise compromised. Further, this approach requires that access points (e.g., network switches) support one of a specific set of access protocols. Because many access points do not support VMPS, 802.1x, or a similar protocol, implementation of this approach on a large preexisting network, such as a corporate network, may be prohibitively expensive.

A greater level of access control may be achieved by including a gatekeeper between the secure network and the access device. The gatekeeper is configured to ensure that the access device conforms to a predetermined security policy. FIG. 1 is a block diagram of a Secure Network, generally designated 100, including two instances of a Gatekeeper 110 each associated with a different instance of an Access Point 120. Secure Network 100 further includes, as an illustrative example, a network File Server 130, a Network PC (personal computer) 140 and a Printer 150 included in and connected via, a local area network designated LAN 125.

Each instance of Access Point 120 may include a large number of individual communication ports. These ports are used to connect through GateKeeper 110 to other elements within Secure Network 100 such as File Server 130 or LAN 125. Large corporate networks may include many instances of Access Point 120, each including hundreds of individual communication ports and being associated with an instance of GateKeeper 110.

Some instances of Access Point 120 are capable of supporting virtual local area networks (VLANs). VLANs are generated by associating communication ports within Access Point 120 with separate virtual networks. For example, one Access Device 160 may be placed on a different VLAN than another Access Device 160 by assigning the communication ports of Access Point 120 to separate VLANs. From the point of view of these devices, the effect of a VLAN is equivalent to having a separate hardwired network.

GateKeeper 110 is configured to control access to Secure Network 100. In addition to authenticating users who wish to access Secure Network 100 using an Access Device 160, GateKeeper 110 is configured to ensure that Access Device 160 conforms to a predetermined security policy, before granting access to Secure Network 100. For example, GateKeeper 110 may make certain that Access Device 160 has up-to-date virus software and encryption protocols as proscribed by the security policy. Once GateKeeper 110 has verified that Access Device 160 satisfies the security policy, Access Device 160 is allowed to communicate through GateKeeper 110 to LAN 125.

A disadvantage of the use of GateKeeper 110, as practiced in the prior art, is that all communications between Access Device 160 and LAN 125 pass through GateKeeper 110. For large networks including many instances of Access Point 120, each of which may include many communication ports, this can be a significant burden. The use of one instance of GateKeeper 110 to support numerous instances of Access Device 160 is limited by bandwidth and required sophistication (e.g., cost) of GateKeeper 110. It is undesirable for GateKeeper 110 to become a limiting factor on the bandwidth of communication between instances of Access Device 160 and Secure Network 100. Further, the use of a separate GateKeeper 110 for each instance of Access Device 160 or Access Point 120 is often prohibitively expensive. Even if a separate GateKeeper is used for each Access Point 120, there is no isolation between compliant and non-compliant Access Devices 160 which are attached to the same Access Point 120.

There is, therefore, a need for improved systems and methods of controlling access to secure networks.

SUMMARY

Systems and methods of the invention include a protected network physically or logically divided into a restricted subset and one or more less-restricted subsets. Requests from an access device for access to the less-restricted subset are first passed to the restricted subset. Elements (e.g., a gatekeeper) of the restricted subset are then used to apply security policies to the access device in the form of an audit and if security policies are satisfied, the access device is granted access to a less-restricted subset of the protected network. The passing of access requests to the restricted subset and granting of access are accomplished by configuring and reconfiguring a communication port of an access point. After access is granted, further communication between the access device and the protected network can include access to the less restricted subset.

In some embodiments, the less-restricted subset of the protected network and the restricted subset of the protected network are characterized by Virtual Local Area Networks (e.g., VLANs) defined within the access point and optionally by access control lists (ACL) of a router, firewall, or switch situated between the VLAN and the protected network. Different VLANs within the same access point, or within different access points, may be configured to characterize a plurality of restricted subsets and/or a plurality of less-restricted subsets within the protected network. A communication port of the access point is configured such that network traffic directed at the protected network is initially passed through a restricted VLAN rather than through a less-restricted VLAN. The restricted VLAN allows network traffic to pass to the restricted subset of the protected network and is typically restricted in the sense that it only allows access to elements of the protected network that are configured to communicate with an access device whose security characteristics are unknown or questionable. In contrast, the less-restricted VLAN allows access to the less-restricted subset of the protected network and, in typical embodiments, to elements of both the less-restricted subset and the restricted subset. For example, the restricted VLAN allows traffic to pass to a gatekeeper configured to receive requests for access to the less-restricted VLAN, and to determine if, and to what extent, access may be allowed. To grant access, the gatekeeper sends commands to the access point in order to reconfigure a communication port to which the access device is connected. The reconfiguration typically includes reassigning the communication port from the restricted VLAN to the less-restricted VLAN.

Subsequent to reconfiguration of the communication port, network traffic can pass from the access device through the less-restricted VLAN to elements of both the less-restricted subset and (optionally) the restricted subset. This network traffic need not pass through the gatekeeper. Thus, in various embodiments of the invention a gatekeeper is used to grant access to the less-restricted subset, and after access has been granted, most network traffic does not need to pass through the gatekeeper. For example, in some embodiments, the gatekeeper only receives requests to access the less-restricted network and data regarding access to and security of the protected network. This data may be received from administrators, access devices, access points, routers, and/or other devices on the network. These limited communications with gatekeeper occur both before and after reconfiguration of the communication port, and eliminate a significant disadvantage associated with the use of prior art gatekeepers.

Various embodiments of the invention include a computing network comprising a less-restricted subset of the computing network, access to the less-restricted subset being responsive to a first VLAN, a restricted subset of the computing network including a gatekeeper, the gatekeeper configured to receive requests for access to the less-restricted subset from an access device and to issue commands configured to allow access to the less-restricted subset, access to the restricted subset of the computing network being responsive to a second VLAN, and at least one access point including a communication port configurable for communication with the less-restricted subset or alternatively for communication with only the restricted subset, configuration of the communication port including association of the communication port alternatively with the first VLAN or the second VLAN, configuration of the communication port being responsive to the commands issued by the gatekeeper. Other elements are optional.

Various embodiments of the invention include a network gatekeeper comprising at least one security policy including requirements that must be satisfied before an access device is granted access to a less-restricted subset of a protected network, a policy auditor configured to audit an access device using the at least one security policy, in response to a request to access the less-restricted subset of the protected network, the request being sent from the access device to the gatekeeper via a communication device, and an access control configured to reconfigure the communication device such that data sent from the access device can be received by the less-restricted subset of the protected network rather than merely a restricted subset of the protected network, if the audit results in a determination that the access device meets the requirements of the at least one security policy, the restricted subset of the protected network including the gatekeeper. Other elements are optional.

Various embodiments of the invention include a method of granting access to a protected network, the method comprising receiving a request for access to a less-restricted subset of the protected network from an access device external to the protected network, the request being received through a communication port of an access point, the communication port configured for communicating between the access device and a restricted subset of the protected network, the restricted subset including a gatekeeper, applying a security policy to the access device, responsive to the request, and reconfiguring the communication port for communicating between the access device and the less-restricted subset of the protected network, if requirements of the security policy are satisfied. Other steps are optional.

Various embodiments of the invention include a method of granting access to a protected network, the method comprising receiving a first communication from an access device at a communication port, the communication port being configured to pass the first communication to a restricted subset of the protected network, the restricted subset including a gatekeeper configured to enforce security policy for access to a less-restricted subset of the protected network, receiving a command from the gatekeeper, the command being responsive to the received first communication and being configured to reconfigure the communication port to communicate data to the less-restricted subset of the protected network, configuring the communication port to communicate data to the less-restricted subset of the protected network rather than merely the restricted subset of the protected network, responsive to the received command, and receiving a second communication from the access device at the communication port, the communication port now being configured to pass the second communication to the less-restricted subset of the protected network. Other steps are optional.

Various embodiments of the invention include a computing network comprising means for dividing the computing network into a restricted subset and a less-restricted subset, means for receiving a request at the restricted subset, the request being to access the less-restricted subset, means for enforcing a security policy in response to the request, and means for allowing communication to the less-restricted subset, responsive to the enforcement of the security policy, the communication to the less-restricted subset not necessarily passing through the restricted subset. Other elements are optional.

In various embodiments of the invention the restricted subset of a computing network includes elements configured to communicate with access devices having an unknown or questionable security status, and the less-restricted subset of the computing network includes those elements of the computing network not included in the restricted subset.

In various embodiments, an access point may be programmed to restrict access to a protected network by an access device until the access devices passes authentication by an authentication server and also passes an audit performed a software agent under the direction of a gatekeeper. This is optionally accomplished while still supporting existing encryption and authentication functionality. For example, these embodiments may be used to support auditing functionality over the 802.1x protocol. The 802.1x protocol, as used herein, is a protocol compliant with one or more of the IEEE 802.1x standards. The access device may include a remote server, a data collection device, a cellular device, a terminal, a laptop computer, a desktop personal computer, a personal digital assistant, or similar computing device.

In various embodiments, the auditing protocol takes place between agent software executing on an access device (e.g., client) and a gatekeeper. A client side filter identifies and redirects calls for audit information to the agent on the access device and sends the responses to an 802.1x compliant access point which relays them to an EAP (Extensible Authentication Protocol) server. The EAP server then calls a server side filter which sends the responses to the gatekeeper for evaluation. The gatekeeper sends requests for more information on the reverse path and this continues until the audit is completed. If the audit is successful, the server sends a configuration message to the access point. This configuration message reconfigures a port of the access point to which the access device is connected to allow greater access to the protected network from the access device. If the audit fails, the port on the access point is optionally left disabled or in a limited access state.

According to an exemplary embodiment, client filters (CF) and server filters (SF), along with an agent and gatekeeper, are included in an access point and protected network, respectively, to perform audits. There may be one or more instances of the client filters and server filters, which correspond to separate EAP Authentication Modules (EAPM) that are supported. The agent and gatekeeper are logical components. The functionality of the agent and gatekeeper can be embedded into the client filters and server filters, respectively, or in the case of the gatekeeper, may reside on a separate server. The gatekeeper may be included in or separate from an authentication server.

Various embodiments of the invention include a method of controlling access to a computing network, the method comprising: receiving 802.1X authentication credentials from a client at an authentication server of the network; determining if the authentication credentials are valid to establish an 802.1X authentication; receiving information characterizing a security status of the client, within the protected network; determining if the security status of the client is compliant with a security policy of the network; and if the client is compliant with the security policy, increasing access from the client to the network.

Various embodiments of the invention include a system comprising: a computing network comprising a plurality of devices, the plurality of devices being divided into a restricted subset and a less restricted subset; an 802.1x compliant access point configured for accessing the computing network; an authentication server configured to receive client authentication credentials from a client via the access point and to authenticate the client using the authentications credentials; logic configured to receive a security status of the client via the access point and to determine if the client is compliant with a security policy of the network based on the security status; and logic configured to allow access to the restricted subset from the client if the client is compliant with the security policy and to limit access to the less restricted subset if the client is not compliant with the security policy.

BRIEF DESCRIPTIONS OF THE VARIOUS VIEWS OF THE DRAWING

FIG. 1 is a block diagram of a prior art computing network;

FIG. 2 is a block diagram of a protected network, according to various embodiments of the invention;

FIG. 3A is a block diagram showing further details of an access point, router and gatekeeper of FIG. 2, according to various embodiments of the invention;

FIG. 3B is a block diagram showing further details of the access point, router and gatekeeper of FIG. 2, after access has been granted to a less-restricted subset of a protected network, according to various embodiments of the invention; and

FIG. 4 is a flowchart illustrating a method of granting access to a protected network, according to various embodiments of the invention.

FIG. 5 is a block diagram showing EAP over 802.1x/Radius, according to various embodiments of the invention.

FIG. 6A is a block diagram showing a client in authentication state, according to various embodiments of the invention.

FIG. 6B is a block diagram showing a server in authentication state, according to various embodiments of the invention.

FIG. 7 is a block diagram showing a server changing to audit state, according to various embodiments of the invention.

FIG. 8A is a block diagram showing a server in audit state, according to various embodiments of the invention.

FIG. 8B is a block diagram showing a client responding to audit requests, according to various embodiments of the invention.

FIG. 9 is a block diagram showing a system in 802.1x mode where normal traffic does not traverse CGS, according to various embodiments of the invention.

FIG. 10 illustrated alternative embodiments of a protected network and an access device, including an 802.1x compliant access point, according to various embodiments of the invention.

FIG. 11 illustrates methods of accessing the protected network of FIG. 10, according to various embodiments of the invention.

DETAILED DESCRIPTION

Access to a protected computing network is controlled by manipulating a communication port within an access point. The access point is a switch or wireless access point (WAP) that is used to connect an access device or network device to a protected network. For example, an access device may connect to a switch via an Ethernet cable at one of the switch's ports. An access device or network device typically connects to a WAP through a wireless network card, commonly through protocols like 802.11a or 802.11b.

When an access request is first received, the communication port is configured to pass the request to a restricted subset of a protected computing network. This restricted subset includes a gatekeeper configured to administer a security policy governing access to those parts of the protected computing network that are not part of the restricted subset. Those parts of the protected computing network that are not part of the restricted network are considered to be in a less-restricted subset. The less-restricted subset being less restricted relative to the restricted subset in terms of what elements may be included in each subset. If the device requesting access satisfies requirements of the security policy, then the gatekeeper sends commands to the access point in order to reconfigure the communication port through which the access request was received. The communication port is reconfigured such that further communication from the access device is passed to the less-restricted subset as well as, optionally, the restricted subset. In some embodiments, the less-restricted subset and the restricted subset are characterized by VLANs defined within the protected network. In some embodiments, the less-restricted subset and the restricted subset are defined using and an access control list. An access control list is a list within a switch or router that includes a set of filtering rules that specify what traffic is permitted through a port. Each port may be associated with a different access control list. An access control list may be used to restrict traffic based on the traffic's destination, e.g., block traffic to a less-restricted subset of a protected network while allowing traffic to a restricted subset.

FIG. 2 is a block diagram of a Protected Network 200, according to various embodiments of the invention. Protected Network 200 is either physically or logically divided into a Restricted Subset 205 and a Less-Restricted Subset 210. Access to Protected Network 200 is possible through an Access Point 215 (a communication device) and an optional Router 220. As is described further herein this access is under the control of a GateKeeper 225. GateKeeper 225 is configured to enforce a security policy against one or more Access Device 230 requesting access to Less-Restricted Subset 210. Typically, Less-Restricted Subset 210 and Restricted Subset 205 are characterized by VLAN settings or access control list within Access Point 215. Access Device 230 and Access Point 215 are connected by a communication channel such as a cable, the Internet, a telephone network, other computing network, and/or the like. In some embodiments, a network access server (not shown) is included between Access Device 230 and Access Point 215.

In various embodiments, Protected Network 200 includes a corporate network, telephone network, private network, local area network, wide area network, wireless network, communication network, government network, university network, and/or the like. Restricted Subset 205 is a subset of Protected Network 200 including at least GateKeeper 225. In some embodiments, Restricted Subset 205 further includes a DHCP (dynamic host configuration protocol service) 260 configured to assign and manage network addresses, and/or an Update Module 255 configured for providing security updates to Access Device 230. For example, in one embodiment, Restricted Subset 205 includes a server configured to function as DHCP 260 and a server configured to function as GateKeeper 225. In one embodiment, Restricted Subset 205 includes a single computing device configured to function as both Update Module 255 and GateKeeper 225.

Less-Restricted Subset 210 includes those elements of Protected Network 200 not included in Restricted Subset 205. Less-Restricted Subset 210 optionally includes devices such as a File Server 235, a Network PC 240, a Printer 245, or the like. In some embodiments, Protected Network 200 includes elements having a hierarchy of access restrictions. For example, access to Network PC 240 may require a higher level of authority than access to File Server 235. In this case, as described further herein, access control lists within Router 220 are optionally used to independently control access to specific devices within Less-Restricted Subset 210. Protected Network 200 may be large, including tens, hundreds, or thousands of devices. The hierarchy of access restrictions may be enforced by a hierarchical set of security policies defined using Policy Manager 250. In various embodiments, Router 220 and Access Point 215 may be considered part of Restricted Subset 205 or Less-Restricted Subset 210. The functionality of Router 220 and Access Point 215 is optionally in a single device, e.g., in Access Point 215.

GateKeeper 225 is configured to enforce one or more security policies against an instance of Access Device 230 attempting to access Protected Network 200. The security polices may include requirements for user identification such as user names and passwords, configuration requirements relating to the configuration of Access Device 230, application requirements relating to applications running on Access Device 230, or the like. For example, in one embodiment GateKeeper 225 is configured to enforce a security policy that requires a user of Access Device 230 to provide a username and password, requires Access Device 230 to be running an operating system with specific security patches installed, requires that Access Device 230 not be connected to any insecure devices, and requires that Access Device 230 have current antivirus software installed.

In some embodiments, GateKeeper 225 is configured to enforce several alternative security policies having different levels of requirements, and to determine which security policy to enforce based on the identity of Access Device 230, the identity of a user of Access Device 230, those elements of Less-Restricted Subset 210 to which access is requested, and/or the like. For example, a request to access File Server 235 may have to satisfy a security policy that includes scanning Access Device 230 for malicious code, while a request to access Printer 245 may have to satisfy a security policy that includes establishing a user identity. Security policies may be stored on GateKeeper 225, on Policy Manager 250, or elsewhere accessible to Restricted Subset 205.

In some embodiments, a single instance of GateKeeper 225 is configured to manage access through more than one Access Point 215 and/or to manage access to more than one Protected Network 200. As is described further herein, management of Access Point 215 is accomplished by configuring and reconfiguring one or more communication ports within Access Point 215, and optionally setting access control lists within Router 220 or Access Point 215. In some embodiments Protected Network 200 includes a plurality of Access Point 215, a plurality of GateKeeper 225 and/or a plurality of Restricted Subset 205. Further details of GateKeeper 225 and Access Point 215 are discussed elsewhere herein.

Access Device 230 is a computing device configured to operate as an end point (EP) in a communication channel including Access Point 215 and Access Device 230. In various embodiments, Access Device 230 is a personal computer, a personal digital assistant, a telephone, a wireless device, a communication device such as a router, Ethernet card, wireless card, another access point, a network device, or the like. Access Device 230 is optionally identified by a MAC address, by a cookie, by data stored on Access Device 230, by a user name, an IP address, a network address, or the like.

In some embodiments, Access Device 230 is configured to execute a software and/or hardware agent for communicating with GateKeeper 225. For example, in one embodiment, Access Device 230 includes an agent configured to monitor code running on Access Device 230 and report any suspicious code to GateKeeper 225. In another example, Access Device 230 may include software and/or hardware configured to monitor other devices connected to Access Device 230 and to report information about these devices (e.g., their security statuses or MAC addresses) to GateKeeper 225.

Policy Manager 250 is configured to centrally create, update, and distribute security policies enforced by one or more GateKeeper 225. For example, in various embodiments, Policy Manager 250 is configured to manage passwords, to specify access privileges, to specify requirements of security policies, or the like. In some embodiments, Policy Manager 250 is configured to establish several security policies and to specify conditions under which each of the security policies should be used. For example, a security policy may be selected for use responsive to a device type of Access Device 230 and/or the elements of Protected Network 200 to which access has been requested. In some embodiments, Policy Manager 250 is configured for specifying the restricted and less restricted subsets of a protected network.

Update Module 255 is configured for remotely modifying Access Device 230, or a device connected to Access Device 230, in order to improve compliance with a security policy. For example, if it is found that Access Device 230 includes out-of-date antivirus software, then Update Module 255 may facilitate updating of the antivirus software on Access Device 230. In some embodiments, Update Module 255 is configured to update an agent executing on Access Device 230. Update Module 255 is optionally included in Less-Restricted Subset 210 or external to Protected Network 200. Update Module 255 optionally operates responsive to a security policy and/or to GateKeeper 225.

FIG. 3A is a block diagram showing further details of Access Point 215, Router 220 and Gate Keeper 225, according to various embodiments of the invention. Access Point 215 is, for example, a network switch, a wireless access point, a remote access virtual private network (VPN), secure socket layer VPN, firewall, or the like. For example, when embodied in a network switch, Access Point 215 includes a series of communication ports, designated Ports 305A-305G and configured for communication with devices such as Access Device 230, Router 220, Less-Restricted Subset 210 and/or Restricted Subset 205.

Communication received at one member of Ports 305A-305G is directed internally to another member of Ports 305A-305G via a member of VLANs 310A-310D. VLANs 310A-310D are logical associations between members of Ports 305A-305G. Typically, any members of Ports 305A-305G that are configured to be associated with the same member of VLANs 310A-310D are in bi-directional communication with each other. These associations are illustrated in FIGS. 3A and 3B by Lines 315. For example, with Ports 305A-305G configured set as shown in FIG. 3A, communication from Access Device 230 and received at Port 305A is directed to Port 305F because Port 305A and Port 305F are both associated with VLAN 310C. (In some embodiments of Access Point 215, a member of VLANs 310A-310D may be configured such that some members of Ports 305A-305G, even if associated with the same VLAN, are hidden from each other. For example, in these embodiments, both Ports 305A and 305B may be in communication with Port 305F but not with each other.)

The associations between member of Ports 305A-305G and VLANs 310A-310D are controlled by Switch Logic 317 which is accessible to other devices, for example through Port 305G. Switch Logic 317 is configured for configuring and reconfiguring members of Ports 305A-305G responsive to received commands. For example, by receiving an appropriate command, Switch Logic 317 is configured to reconfigure Port 305A to be associated with VLAN 310A, as illustrated in FIG. 3B below. In this configuration data received at Port 305A is directed to Port 305D via VLAN 310A, rather than to Port 305F.

As is discussed further below, the commands received by Switch Logic 317 may be generated by GateKeeper 225. This communication between GateKeeper 225 and Switch Logic 317 may be accomplished using SNMP (Simple Network Management Protocol), telnet, SSH (Secure Shell), RADIUS (Remote Authentication User Dial-In Service), EAP (Extensible Authentication Protocol), or the like.

In some embodiments, Switch Logic 317 includes a memory (not shown) configured to store the status of Ports 305A-305G and/or identification data regarding Access Device 230. This identification data may include, for example, MAC addresses, IP (internet protocol) addresses, or other data that may be used to identify Access Device 230 or data sent by Access Device 230.

Data passed through members of Ports 305DA-305G are received by Router 220 and may be communicated to other elements of Protected Network 200 responsive to access control lists (ACL 340A-340D) associated with Ports 335A-335D of Router 220. ACL 340A through 340D are each communication filters that deny or allow communication to be passed to specific elements or sets of elements within Protected Network 200. For example, ACL 340C may be an access control list that specifically allows communication to network addresses used by GateKeeper 225 and DHCP 260, and blocks communication to all other network addresses. In this case, communication through Port 335C of Router 220 would only be allowed to reach these to elements of Restricted Subset 205 and would not be allowed to reach elements of Less-Restricted Subset 210.

ACL 340A-340D of Router 220 may be used to limit communication from Access Device 230 to specific elements of Protected Network 200. For example, in the embodiments illustrated by FIG. 3A, if ACL 340C is configured to restrict communication to Restricted Subset 205, and Ports 305A-305C are associated with VLAN 310C as indicated by Lines 315, then communication via these member of Ports 305A-305G will be restricted to Restricted Subset 205. In typical embodiments, at least one member of ACL 340A-340D is configured to allow communication to Restricted Subset 205 but not to Less-Restricted Subset 210. As is discussed further herein, by reconfiguring a member of Ports 305A-305C to be associated with a different member of VLANs 310A-310D, not subject to the filtering of ACL 340C, communications from Access Device 230 can be directed to elements within Less-Restricted Subset 210, and optionally Restricted Subset 205, rather than merely to Restricted Subset 205.

When Access Point 215 is embodied in a wireless access point, some or all of Ports 305A-305G may be wireless connections rather than physical ports. In these embodiments, Lines 315 may represent logical associations used to control data flow between wireless connections to Access Point 215 and/or members of Ports 305A-305G that are physical communication ports. For example, in some embodiments, MAC addresses are used to distinguish wireless communications from different instances of Access Device 230 and the logical associations (represented by Lines 315) are used to direct these communications to various output channels. The output channels may be other wireless connections or physical members of Ports 305A-305G. These logical associations may be altered by Switch Logic 317 just as associations with members of VLANs 310A-310D are modified. Therefore, the teachings herein that use a network switch as an example of Access Point 215, apply equally to wireless access points.

Switch Logic 317 is controlled by an Access Control 320 included in GateKeeper 225. Access Control 320 is configured to send commands to Switch Logic 317 in order to reconfigure members of Ports 305A-305G. This reconfiguration includes modifying the association of members of Ports 305A-305G with different members of VLANs 310A-310D. In some embodiments, as described further herein, Access Control 320 is also configured to read a status of members of Ports 305A-305G and/or device identification data from Switch Logic 317. In some embodiments, access control lists at a switch and/or router are used to control access to restricted and less-restricted subsets of a network without explicitly defining a VLAN.

Access Control 320 is responsive to a Policy Auditor 325 included in GateKeeper 225. Policy Auditor 325 is configured to receive a request for access to Less-Restricted Subset 210 from Access Device 230, to determine which of Security Policy 330A or optional Security Policy 330B applies to the current request, to perform a security audit of Access Device 230 based on the appropriate member of Security Policies 330A-330B, and to notify Access Control 320 if the audit is passed. This notice typically causes Access Control 320 to reconfigure a member of Ports 305A-305G using Switch Logic 317. For example, in some embodiments, if Security Policy 330A applies and if Access Device 230 satisfies requirements of Security Policy 330A, then Policy Auditor 325 provides a notice to Access Control 320. In response, Access Control 320 sends appropriate commands to Switch Logic 317. These commands cause changes in Port 305A, such that communication from Access Device 230 is no longer blocked by ACL 340C and can now be received by elements of Less-restricted Subset 310. In alternative embodiments, Security Policies 330A-330B are stored elsewhere in Protected Network 200 accessible to Policy Auditor 325. Restricted Subset 205 optionally includes one, two, or more security policy, such as Security Policies 330A-330B.

FIG. 3B is a block diagram showing further details of Access Point 215, Router 220 and GateKeeper 225 of FIG. 2, after access has been granted to elements of Less-Restricted Subset 210, according to various embodiments of the invention. Port 305A has been reconfigured to be associated with VLAN 310A rather than VLAN 310C. Because, VLAN 310A is communicatively coupled to Port 305D and Port 335A (of Router 220) via ACL 340A, any communication received at Port 305A from Access Device 230 is now subject to the filtering effects of ACL 340A rather than ACL 340C. If ACL 340A allows communication to network addresses associated with one or more elements of Less-Restricted Subset 210, the above reconfiguration of Port 305A results in a granting of access to Less-Restricted Subset 210 from Access Device 230. In some embodiments, if ACL 340A is configured to allow access to members of Less-Restricted Subset 210 it is also configured to allow access to members of Restricted Subset 205. Once Port 305A has been reconfigured to be associated with VLAN 310A, future general network traffic between Access Device 230 and Less-Restricted Subset 210 may pass through Ports 305A, 305D and 335A without passing through GateKeeper 225 or other elements of Restricted Subset 205. Further, communication related to access to security of Protected Network 200 may still be received by GateKeeper 225 via Port 305A. For example, GateKeeper 225 may still receive control traffic such as DNS lookups or DHCP requests, or requests to access additional elements of Protected Network 200, or requests to continue to access the Less-Restricted Subset 210.

In some embodiments, members of VLAN 310A-310D and ACL 340A-340D are optionally used to grant or bar access to different subsets of Protected Network 200, Less-Restricted Subset 210, or Restricted Subset 205. For example, ACL 340B may be configured to grant access to File Server 235, Policy Manager 250 and GateKeeper 225. In this case associating a member of Ports 305A-305C with VLAN 310B may provide access to these devices from an instance of Access Device 230. Granting of access to a specific region of Less-Restricted Subset 210 is optionally responsive to which member of Security Policies 330A-330B has been satisfied.

FIG. 4 is a flowchart illustrating a method of granting access to Less-Restricted Subset 210 (FIG. 2), according to various embodiments of the invention. In these embodiments, an Update Port Log Step 410 and a Restrict Port Step 420, are used to prepare an open (unused) communication port on Access Point 215 for receiving a request for access to Less-Restricted Subset 210. This request is received from Access Device 230 in a Receive Access Request Step 430. In response, GateKeeper 225 authenticates a user, obtains audit data, and applies a security policy in an Authenticate User Step 440, an Obtain Audit Data Step 450 and an Apply Security Policy Step 460, respectfully. If the security policy is satisfied, then in a Reconfigure Port Step 470 GateKeeper 225 reconfigures the communication port of Access Point 215, to which Access Device 230 has connected. Finally, the reconfigured communication port is used to pass communication between Access Device 230 and one or more element of Less-Restricted Network 205 in a Communicate Step 480. Further details of these steps are discussed herein.

In Update Port Log Step 410, Access Control 320 reads port configuration data from Access Point 215 to determine the current configuration of Ports 305A-305G. If any of Ports 305A-305G have been configured by an administrator of Access Point 215, then in Update Port Log Step 410 the administrator specified configuration(s) are stored for later use during Reconfigure Port Step 470. Typically, the read configuration data is stored in a port configuration table, for example within GateKeeper 225. Update Port Log Step 410 is optional, as discussed further herein.

In Restrict Port Step 420, Access Control 320 configures those members of Ports 305A-305G that may be accessed by external devices, such as Access Device 230. These communication ports are configured to be associated with VLAN 310C such that any data (e.g., communications) they receive from external devices are directed to Port 305F and, thus, to subject to ACL 340C. ACL 340C is configured to allow communication to, for example, DHCP 260 and GateKeeper 225. As a result, any requests for access received from external devices are prevented from reaching Less-Restricted Subset 210 and instead are received by elements of Restricted Subset 205. Restrict Port Step 420 results in a configuration such as that illustrated in FIG. 3A. In this configuration, those members of Ports 305A-305G that may be accessed by external devices include Port 305A, Port 305B and Port 305C. As a result of Restrict Port Step 420, these members of Ports 305A-305G are associated with VLAN 310C and communicatively coupled to Protected Network 200 through ACL 340C. Restrict Port Step 420 is optional, for example when members of Ports 305A-305C have been configured to communicate data to elements of Restricted Subset 205 by an administrator of Access Point 215.

In Receive Access Request Step 430, a request for access to Less-Restricted Subset 210 is received at one of Ports 305A-305C configured to pass data to DHCP 260 and Gatekeeper 225. Typically, this request is received from an external device such as Access Device 230. Because Port 305A, Port 305B and Port 305C are configured to pass data to DHCP 260 and Gatekeeper 225, the received access request passes through Access Point 215 and is received by either DHCP 260 or Gatekeeper 225 In typical embodiments, an initial access request is first acknowledged by DHCP 260 which assigns a dynamic network address (e.g., IP address) to Access Device 230 and returns, to Access Device 230, a network address associated with GateKeeper 225 or more specifically Policy Auditor 325. Using this network address, Access Device 230 may engage in further communication with GateKeeper 225 or Policy Auditor 325. In some embodiments, DHCP 260 and instances of GateKeeper 225 are associated with a local domain name service configured to provide network addresses associated with a particular instance of GateKeeper 225 configured to manage (reconfigure) the particular Access Point 215 to which Access Device 230 is connected.

In optional Authenticate User Step 440, Policy Auditor 325 authenticates the identity of Access Device 230 and/or a user of Access Device 230. This authentication may be required by a member of Security Policies 330A-330B. In various embodiments, the authentication may include receipt of a user name and password, receipt of a MAC address, reading of data stored on Access Device 230, communication with an agent executing on Access Device 230, or the like.

In optional Obtain Audit Data Step 450, Policy Auditor 325 collects further data to perform a security audit of Access Device 230 responsive to Security Policy 330A or Security Policy 330B. In some embodiments, Obtain Audit Data Step 450 includes sending system data requests to Access Device 230, Router 220, or Access Point 215. The requested system data may include, for example, operating system status (version, updates, etc.), antivirus software status, information concerning devices connected to Access Device 230, Windows registry information, MAC address, IP addresses, cookies, status of applications executing on Access Device 230, or the like. Collectively, the above information is indicative of the security status of the Access Device 230.

In some embodiments, Obtain Audit Data Step 450 is facilitated by an agent running on Access Device 230. For example, Access Device 230 may include a software agent configured to monitor local security and to report results of this monitoring to Policy Auditor 325.

In Apply Security Policy Step 460, a security audit of Access Device 230 is performed by Policy Auditor 325 responsive to a member of Security Policy 330A or Security Policy 330B. The particular member of Security Policy 330A or Security Policy 330B used to perform the audit may be responsive to the identity of Access Device 230, an identity of a user of Access Device 230, a part of Less-Restricted Subset 210 to which access is requested, or the like. The security audit typically includes determining if Access Device 230 satisfies requirements of the security policy. The security audit optionally includes active probing, scanning, and/or collection of third party data regarding Access Device 230. In some embodiments, Authenticate User Step 440 is considered part of the security policy audit.

As is discussed further herein, in some embodiments, satisfaction of all the requirements of a particular security policy results in access to Less-Restricted Subset 210, while satisfaction of a subset of the requirements associated with the particular security policy is considered partial satisfaction of the security policy and may result in a more limited access to Less-Restricted Subset 210.

In some embodiments, Apply Security Policy Step 460 includes using Update Module 255 (FIG. 2) to overcome deficiencies in the security of Access Device 230. For example, in one embodiment, Apply Security Policy Step 460 includes updating antivirus software on Access Device 230 in response to a security audit that determined that the current antivirus software is out-of-date.

In Reconfigure Port Step 470, the communication port of Access Point 215, to which Access Device 230 is communicatively connected, is reconfigured responsive to a successful security audit in Apply Security Policy Step 460. This communication port is reconfigured such that data received by the communication port is passed to one or more elements of Less-Restricted Subset 210 rather than merely elements of Restricted Subset 205 (e.g., GateKeeper 225). For example, FIG. 3A shows Port 305A prior to execution of Reconfigure Port Step 470 and FIG. 3B shows Port 305A following execution of Reconfigure Port Step 470. In FIG. 3B, Port 305A is associated with VLAN 310A and, thus, communicatively coupled through Port 305D to Protected Network 200 subject to the restrictions of ACL 340A. The restrictions of ACL 340A allow access to all or part of Less-Restricted Subset 210, as well as optionally all or part of Restricted Subset 205.

In typical embodiments, reconfiguration of Port 305A is accomplished by sending commands from Access Control 320 to Switch Logic 317. These commands or responses to requests from Switch Logic 317 are optionally sent via SNMP, telnet, SSH, RADIUS, EAP, or the like, and are responsive to data received in Authenticate User Step 440 and Obtain Audit Data Step 450, and/or to the security audit performed in Apply Security Policy Step 460. In response to these commands, Switch Logic 317 configures Port 305A to be associated with VLAN 310A and, thus, communicate through Port 305D. Reconfigure Port Step 470 optionally includes changing an access control list without establishment of VLANs.

While access control lists (ACL 340A-340D) within Router 220 are typically configured prior to Receive Access Request Step 430, in some embodiments, Reconfigure Port Step 470 further includes configuring one or more members of ACL 340A-340D. In alternative embodiments, reconfiguring of members of ACL 340A-340D may be used to grant access to elements of Less-Restricted Subset 210 as an alternative to associating members of Ports 305A-305G to different members of VLANs 310A-310D.

Access Control 320 may selectively grant access to different parts of Protected Network 200 if ACL 340B is configured to allow access to different elements within Protected Network 200 than ACL 340A is configured. For example, in one embodiment, Access Device 230 will receive access to all of Less-Restricted Subset 210 if Port 305A is associated with VLAN 310A, or alternatively Access Device 230 will receive access to only a part of Less-Restricted Subset 210 if Port 305A is associated with VLAN 310B. When Port 305A is associated with VLAN 310A, as in FIG. 3B, communication from Access Device 230 is directed through Port 335A of Router 220 subject to ACL 340A and, thus, may access only those elements of Protected Network 200 allowed by ACL 340A. When Port 305A is associated with VLAN 310B, communication from Access Device 230 is instead passed through Port 335B subject to ACL 340B and may access only those elements of Protected Network 200 permitted by ACL 340B. A selection between granting access to a first or second part of Protected Network 200 can, therefore, be made using Access Control 320. The selection is optionally responsive to the security policy used in Apply Security Policy Step 460, to whether the security policy was fully or partially satisfied, to data obtained in Authenticate User Step 440 or Obtain Audit Data Step 450, or the like.

As illustrated in the above example, a member of Ports 305A-305G, through which Access Device 230 is requesting access, may be reconfigured to more than one alternative setting in Reconfigure Port Step 470. For example, in various embodiments a communication port may be reconfigured to a prior administrator specified configuration previously read in Update Port Log Step 410, reconfigured to be linked to a specific port responsive to the request received in Receive Access Request Step 430, reconfigured to grant access to a particular part of Less-Restricted Subset 210, reconfigured to a default setting, and/or the like. By reading administrator specified port configurations in Update Port Log Step 410 and reconfiguring communication ports back to these read configurations in Reconfigure Port Step 470, an administrator may reconfigure Protected Network 200 without concern that their specifications will be lost or permanently overwritten by methods of the invention. In embodiments wherein a communication port is not reconfigured to a previous administrator specified configuration, Update Port Log Step 410 is optional.

In Communicate Step 480, communication occurs between Access Device 230 and elements of Less-Restricted Subset 210 via the communication port reconfigured in Reconfigure Port Step 470. However, in some embodiments, ACL 340A is configured to allow access to GateKeeper 225 as well as Less-Restricted Subset 210. Thus, general network traffic does not need to pass through GateKeeper 225, while communication regarding security of Protected Network 200 is optionally received by GateKeeper 225. Further communication between Access Device 230 and GateKeeper 225 may provide a variety of advantages. For example, further communication between GateKeeper 225 and an agent executing on Access Device 230 may allow for continuing audits of security aspects of Access Devices 230. These audits may be similar to those performed in Apply Security Policy Step 460. In one embodiment, ACL 340A is configured to grant access to all of Protected Network 200.

Further communication between GateKeeper 225 and an agent executing on Access Device 230 may also allow for a user of Access Device 230 to explicitly logoff Protected Network 200. An explicit logoff will result in reconfiguration of Port 305A such that access is again restricted to Restricted Subset 205. A logoff may alternatively be responsive to a timeout of communication with Access Device 230, a SNMP trap message indicating a connection has been broken, or the like.

According to embodiments like that disclosed in U.S. Provisional Patent Application No. 60/513,080, the disclosure of which has been incorporated herein by reference, an AP (e.g., a switch or wireless access point (WAP) which is used to connect end points to the corporate network) may be programmed to prohibit access by the PC (e.g., notebook, desktop PC, PDA, or similar computing device) to the corporate network until authentication with the authentication server passes AND an audit with the software agent with the GK (e.g., software that acts as a gatekeeper by granting or denying access to the corporate network from end points after auditing the end point based on certain criteria) passes, while still supporting the existing encryption and authentication functionality. The method used to support auditing functionality over the existing 802.1x protocol implementation is complicated and not an obvious variation of the 802.1x protocol.

According to an embodiment like that disclosed in U.S. Provisional Patent Application No. 60/513,080, the disclosure of which has been incorporated herein by reference, the auditing protocol takes place between the EP (e.g., end point which can either be a PC or network device) agent software and the GK. A client filter redirects calls for audit information to an agent on the EP and sends the responses to the 802.1x compliant AP which relays them to the EAP server. The EAP server then calls a server filter which sends the responses to the GK for evaluation. The GK sends requests for more information on the reverse path and this continues until the audit is completed. If the audit is successful, the server sends a message to the AP which enables the EP's port allowing access for the PC. If the audit fails, the port on the AP is left disabled.

According to an exemplary embodiment, client filters (CF) and server filters (SF) are added along with an agent and GK to perform audits, as highlighted in FIG. 5. There may be one or more instances of the CF and SF, which correspond to the separate EAP Authentication Modules (EAPM) that are supported. Note that the agent and GK are logical components. The functionality of the agent and GK can be embedded into the CF and SF, respectively, or in the case of the GK, may reside on a separate server.

The CF and SF APIs have APIs which correspond to the EAPM APIs. Therefore, the EAP Client Layer (ECL) or EAP Server Layer (ESL) can call the CF and SF instances corresponding to a particular authentication method as shown in FIGS. 6A and 6B. To the ECL and ESL, each instance of the CF and SF appears to be an EAPM which incorporates the functionality of the original EAPM prior to completion of the success response by the server EAPM.

To use the invention as disclosed in U.S. Provisional Patent Application No. 60/513,080, the disclosure of which has been incorporated herein by reference, the ECL and ESL are configured to use the instance of the CF and SF corresponding to the desired authentication method. This authentication method corresponds to an authentication method supported by one of the EAPMs.

The ECL calls the corresponding CF to perform authentication, which at first calls the appropriate EAPM to obtain the proper authentication response. The authentication response is returned by the CF to the ESL, which sends the response to the server's ESL, SF, and EAPM. This process continues until the authentication either succeeds or fails, at which time the server's authentication EAPM returns a success or failure response to the SF.

If the SF receives a success response from the server EAPM as shown in FIG. 7, the SF changes to the audit state and calls GK to obtain audit requests to send back to the client. In this state, the SF returns specially formatted audit requests to the ESL which are passed to the ECL, and eventually to the CF which sends back audit responses to the SF requests.

On the client, audit requests are passed to the agent API instead of to the client EAPM. The agent returns information about the local system, which is converted to audit responses that are sent to the server.

During the audit state, the SF and CF exchange audit requests and responses about the EP as shown in FIGS. 8A and 8B. The ECL and ESL continue to communicate with the CF and SF, but instead of calling the EAPM, the CF and SF call the agent and GK respectively, to perform this exchange. The audit session continues until the necessary audit information has been passed to the SF.

If the audit indicates the client EP is in compliance, the SF returns a success response. If the VLAN for the EP is specified in the policy, then the VLAN that should be used for this EP is passed back as well.

If the GK determines that the EP has failed the audit, GK returns a failure response to SF which causes one of the following: (1) the SF returns a failure to ECL, and the corresponding port on the AP is left disabled, or (2) the SF returns a success response to the ECL but specifies that the EP should be set to a restricted VLAN where the EP has limited network access. In either case, the EP is isolated from the company network until it successfully passes an audit with the GK.

After the audit has been performed, “keep alives” and updates regarding changes to previous audit information are exchanged. Changes are reevaluated and if inconsistent with the current state, access to the network is modified appropriately by changing the VLAN used for the EP or by terminating access by the EP by communicating with the AP.

Several embodiments are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations are covered by the above teachings and within the scope of the appended claims without departing from the spirit and intended scope thereof. For example, the teachings herein may be applied to embodiments wherein Access Point 215 is a wireless access point and MAC addresses, or the like, are used instead of VLANs to separate traffic from different instances of Access Device 230. It is, thus, anticipated that network management techniques other than VLANs may be used to distinguish Less-Restricted Subset 210 from Restricted Subset 205. In some embodiments, various aspects of GateKeeper 225 may be incorporated into Access Point 215 and/or Router 220. GateKeeper 225 and Policy Manager 250 are each optionally implemented on a plurality of computing devices within Restricted Subset 205.

In some embodiments, GateKeeper 225 uses DHCP 260 to assign IP addresses from a restricted IP address range depending on the compliance of Access Device 230 to security policies 330A-330B. GateKeeper 225 inserts DHCP options and/or modifies the IP source addresses of DHCPDISCOVER and DHCPREQUEST packets, based on the compliance of the Access Device 230 to security policies 330A-330B. DHCP 260 is configured to provide an address from the restricted address range or the less-restricted address range based on the source address and/or options present in the DHCP request or discover packets that have been modified by GateKeeper 225. In some embodiments, the insertion of DHCP options and/or modification of IP source addresses may be used to characterize restricted and less-restricted subnets, rather then configuring port associations with VLANs as discussed herein.

FIG. 10 illustrated alternative embodiments of Protected Network 200 and Access Device 230 including an 802.1x compliant Access Point 215. FIG. 10 is an alternative representation of the embodiments illustrated elsewhere herein. In the embodiments illustrated by FIG. 10, Protected Network 200 comprises an EAP (Extensible Authentication Protocol) Server 510. EAP Server 510 provides authentication, authorization and accounting (AAA) services and may provide these services via an 802.1x/RADIUS compliant embodiment of Access Point 215. For example, communication between Access Point 215 and Access Device 230 may be accomplished using an 802.1x authenticated connection, while communication between Access Point 215 and EAP Server 510 is optionally accomplished using secure RADIUS channels. EAP Server 510 is optionally combined with GateKeeper 225. EAP Server 510 comprises, for example, an Authentication Module 520, a Server Filter 530 and an EAP Server Layer 540. Each of these logical elements may be embodied in hardware, firmware, and/or software stored on a computer readable medium.

FIG. 10 also illustrates an embodiment of Access Device 230 comprising an EAP Layer 550, a Client Filter 560, an Authentication Module 570, and an Agent 580. Each of these logical elements may be embodied in hardware, firmware, and/or software stored on a computer readable medium.

EAP Server Layer 540 and EAP Client Layer 550 are configured to communicate with each other to establish 802.1x authentication. For example, EAP Client Layer 550 may send an authentication response as the result of standard 802.1x handshaking that occurs between an access device and an 802.1x configured port of an access point. In various embodiments, a handshaking signal received at EPA Client Layer 550 is passed to Client Filter 560 via an application programming interface of Client Filter 560. If the signal is part of a standard 802.01x communication then the signal is passed from Client Filter 560 to Authentication Module 570 via an application programming interface of Authentication Module 570 for use in the 802.1x authentication process. Optionally, the application programming interface of Client Filter 560 is configured to be the same as the application programming interface of Authentication Module 570 from the viewpoints of EAP Client Layer 550 and/or Authentication Module 570. This allows Client Filter 560 to be inserted between what are optionally prior art instances of EAP Client Layer 550 and Authentication Module 570, without adversely effecting their operation. In some embodiments, different versions of Client Filter 560 and Server Filter 530 are provided to support different EAP authentication modules.

Authentication Module 570 is configured to perform authentication of Access Device 230, e.g., 802.1x authentication of a user's personal computer. Specifically, Authentication Module 570 is configured to provide an authentication response in answer to an authentication signal received through EAP Client Layer 550. This authentication response may be passed through Client Filter 560 and/or EAP Client Layer 550 to Access Point 215.

EAP Server Layer 540 is configured to exchange 802.1x handshaking signals from and to Access Point 215. For example, EAP Server Layer 540 may receive 802.1x protocol signals from EAP Client Layer 550 via Access Point 215. These signals are passed to Authentication Module 520 via Server Filter 530. As discussed with respect to Client Filter 560, Server Filter 530 optionally includes APIs configured to mimic an API of Authentication Module 520 and, thus, make Server Filter 530 transparent to 802.1x authentication messages. In some embodiments, this allows Server Filter 530 to be inserted between Authentication Module 520 and EAP Server Layer 540 without substantially altering their operation. Authentication Module 520 is configured to perform the server side of an authentication protocol such as 802.1x.

One of the functions of Client Filter 560 and Server Filter 530 is to determine which received signals are part of an authentication protocol to be handled by Authentication Module 570 and Authentication Module 520, respectively, and which received signals should be sent elsewhere. For example, Server Filter 530 may be configured to receive and identify a signal indicating that 802.1x authentication is complete and to pass that signal to GateKeeper 225. Likewise, Client Filter 560 may be configured to receive and identify a signal that is generated by GateKeeper 225 and pass this signal to Agent 580 rather than Authentication Module 570.

Because of Server Filter 530 and Client Filter 560 communication between Protected Network 200 and Access Device 230 can take several stages. In an initial (authentication) stage 802.1x authentication occurs between the client and network using EAP packets. In the authentication stage data is passed through Server Filter 530 and Client Filter 560 in what is optionally a transparent manner.

In the next (audit) stage Access Device 230 is audited using GateKeeper 225. In the audit stage Server Filter 530 is used to redirect data received at Protected Network 200 (e.g., Access Point 215 and/or EAP Server Layer 540) to GateKeeper 225. Likewise, Client Filter 560 is used to redirect data received at Access Device 230 to Agent 580. In this stage GateKeeper 225 (or more specifically Policy Auditor 325 and Agent 580 are used to perform a security audit of the status of Access Device 230. This security audit is compared to one or more security policy to determine whether Access Device 230 may be granted further access to the Protected Network 200. The audit typically occurs through the 802.1x authenticated communication channel.

In a next (access) stage the Access Device 230 is granted greater access to Protected Network 200 if the security policy is satisfied. This further access is granted by configuring Access Point 215. For example, Access Point 215 may be reconfigured such that signals received at a port to which Access Device 230 is connected can be communicated to File Server 235. In some embodiments this is accomplished by modifying an access control list of Access Point 215 and/or a router attached thereto. Communication between Access Device 230 and File Server 235 need not traverse GateKeeper 225. If the security policy is not satisfied, there are a variety of alternative consequences. For example, in some embodiments, the port of Access Point 215 to which Access Device 230 is connected is closed and Access Device 230 is disconnected from Protected Network. In some embodiments, Access Device 230 is allowed continued access to the Restricted Subset 205 and blocked from Less-Restricted Subset 210. In some embodiments, Update Module 255 is used to improve the health of Access Device 230. For example, Update Module 225 may be used to apply on operating system patch or virus signature file to Access Device 230. After Access Device 230 has been modified the audit stage may be repeated to again determine if Access Device 230 satisfies a security policy. Optionally, the audit stage is repeated periodically to assure that Access Device 230 remains compliant with the security policy.

FIG. 11 illustrates methods of accessing Protected Network 200 of FIG. 10, according to various embodiments of the invention. FIG. 11 is an alternative representation of the embodiments illustrated elsewhere herein. In this method Access Device 230 is used to access Protected Network 200 by performing the authentication, audit and access stages described elsewhere herein. This access is optionally preceded by a plurality of setup steps including a Set Network Security Policy Step 610, a Configure Access Point Step 615, and/or a Provide Filter Step 620.

In Set Network Security Policy Step 610 a security policy is set for Protected Network 200. This security policy may include requirements of operating system patches, virus signature files, the presence of Agent 580, or other security related factors discussed herein. The security policy is optionally set by a manager of Protected Network 200 using Policy Manager 250.

In Configure Access Point Step 615 Access Point 215 is configured such that a device attempting to access Protected Network 200, e.g., Access Device 230, is initially limited to accessing Restricted Subset 205 and not allowed to access Less-Restricted Subset 210. Configure Access Point Step 615 may include setting port configurations (e.g., access control lists) such that data passing through these ports is only communicated to Restricted Subset 205.

In Provide Filter Step 620, Client Filter 560 and/or Agent 580 are provided to Access Device 230. Provide Filter Step 620 may be performed by a user of Access Device 230 or the manager of Protected Network 200. Client Filter 560 and/or Agent 580 may be provided via Access Point 215 or alternatively on a computer readable media (e.g., ROM, RAM, a magnetic disk or an optical disk). All or part of Provide Filer Step 620 is optionally included as part of a Perform Remediation Step 660 discussed elsewhere herein.

In a Receive Authentication Credentials Step 625, 802.1x authentication credentials are generated by Authentication Module 570 and received by Authentication Module 520 via Access Point 215. These authentication credentials typically pass through Server Filter 530 and Client Filter 560, and may include 802.1x authentication credentials of the prior art. Receive Authentication Credentials Step 625 is optionally one of several 802.1x handshaking communications between Authentication Module 570 and Authentication Module 520. Each of these communications optionally pass through Server Filter 530 and Client Filter 560. In one example, an authentication request is first received by Authentication Module 520 from Access Device 230. Authentication Module 520 then provides an authentication response that is communicated back to Authentication Module 570.

In a Determine Validity Step 630, the validity of the 802.1x authentication credentials received in Receive Authentication Credentials Step 625 are determined. This determination may be based on the communications between Authentication module 520 and Authentication Module 570. Determine Validity Step 630 optionally includes communication of a user identifier, a password, and/or the like. Determine Validity Step 630 optionally includes Authenticate User Step 440 (FIG. 4). If the authentication is successful, notification of this success is received by Server Filter 530 from Authentication Module 520 and therefrom provided to GateKeeper 225. Server Filter 530 then switches to the audit phase in which information other than 802.1x authentication data is communicated to and from GateKeeper 225.

In a Receive Security Status Information Step 635, the data representing a security status, e.g., health, of Access Device 230 is received by EAP Server 510. This data is optionally received in response to a request from GateKeeper 225. For example, in some embodiments, when 802.1x authentication is successful GateKeeper 225 receives an indication of this success from Server Filter 530. GateKeeper 225 then automatically sends a request for audit information to Agent 580 via Server Filter 530 and Client Filter 560. Client Filter 560 is configured to direct this request to Agent 580 rather than Authentication Module 570. For example, the request may include identifying data and/or format recognizable by Client Filter 560. A lack of response to this request may be used to indicate that Agent 580 and/or Client Filter 560 are not properly installed on Access Device 230. In this case Access Device 230 is optionally determined not to be in compliance with a security policy by default. The data that can be included in a representation of the security status of Access Device 230 is discussed elsewhere herein. Because 802.1x authentication has been established, the audit and exchange of security status information can take place using redirected authentication (EAP) packets communicated through EAP Server Layer 540 and EAP Client Layer 550.

Receive Security Status Information Step 635 optionally includes several communications between GateKeeper 225 and Agent 580. For example, initial communications may be used to determine a version of Agent 580 while subsequent communications may include requests from GateKeeper 225 for specific information and responses to these requests from Agent 580. Each of these communications are identified by Server Filter 530 and Client Filter 560 and directed to GateKeeper 225 and Agent 580, accordingly. Receive Security Status Information Step 635 optionally includes Obtain Audit Data Step 450.

In a Determine Compliancy Step 640, the data received by GateKeeper 225 in Receive Security Status Information Step 635 is compared with one or more security policy to determine if Access Device 230 satisfies the security policy. Determine Compliancy Step 640 is similar to Apply Security Policy Step 460. In some embodiments, the security status of Access Device 230 satisfies a first security policy but not a second security policy.

If Access Device 230 satisfies at least one security policy, then in an Increase Access Step 645, access to Protected Network 200 from Access Device 230 is increased. For example, Access Device may be allowed access to all or parts of Less-Restricted Subset 210. The scope of access provided and which devices within Protected Network 200 access is provided is optionally a function of which security policy was satisfied. For example, satisfaction of a low level security policy may result in access being granted only to a printer, while access to a relatively high level security policy may result in access being granted to all of Less-Restricted Subset 210.

Access is optionally granted by changing reconfiguring ports of Access Point 215, e.g., setting appropriate switches and/or access control lists. This results in a change in the operation of Access Point 215 such that information received via the port to which Access Device 230 is connected is communicated to additional parts of Protected Network 200. Data communicated between Access Device 230 and Access Point 215 typically continues to be communicated using the 802.1x protocols, as established in the authentication state.

In an optional Monitor Status Step 650, Agent 580 and GateKeeper 225 are used to monitor the security status of Access Device 230, after the initial status has been determined to satisfy a security policy. For example, in some embodiments the identity of Access Device 230 is reconfirmed every 30 seconds while a more complete audit is performed every 30 minutes. Security status updates regarding changes to previous audit information are optionally exchanged. Changes are reevaluated and if inconsistent with the current state, access to the network is modified appropriately

If Access Device 230 does not satisfy at least one security policy, then in a Continue Limited Access Step 655 access restrictions, relative to Protected Network 200, are continued. These restrictions may include preventing access altogether or continuing to allow access to only Restricted Subset 205. For example, the configuration of Access Point 215 may be changed to prevent all access, or to allow access to only EAP Server 510 and/or GateKeeper 225.

In optional Perform Remediation Step 660 Update Module 255 is used to correct deficiencies in the security status of Access Device 230. As is discussed elsewhere herein, these updates may include applying patches, providing virus signature files, and/or the like. In some embodiments, Perform Remediation Step 660 includes providing a current version of Agent 580 and/or Client Filter 560 to Access Device 230. Following Perform Remediation Step 660, the method optionally returns to Determine Compliancy Step 640 wherein it is determined whether the remediation has brought Access Device 230 into compliance with a security policy.

Several embodiments are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations are covered by the above teachings and within the scope of the appended claims without departing from the spirit and intended scope thereof. For example, the teachings herein may be applied to embodiments wherein Access Point 215 is a wireless access point and MAC addresses, or the like, are used instead of VLANs to separate traffic from different instances of Access Device 230. It is, thus, anticipated that network management techniques other than VLANs may be used to distinguish Less-Restricted Subset 210 from Restricted Subset 205. In some embodiments, various aspects of GateKeeper 225 may be incorporated into Access Point 215 and/or Router 220. GateKeeper 225 and Policy Manager 250 are each optionally implemented on a plurality of computing devices within Restricted Subset 205.

In some embodiments, GateKeeper 225 uses DHCP 260 to assign IP addresses from a restricted IP address range depending on the compliance of Access Device 230 to security policies 330A-330B. GateKeeper 225 inserts DHCP options and/or modifies the IP source addresses of DHCPDISCOVER and DHCPREQUEST packets, based on the compliance of the Access Device 230 to security policies 330A-330B. DHCP 260 is configured to provide an address from the restricted address range or the less-restricted address range based on the source address and/or options present in the DHCP request or discover packets that have been modified by GateKeeper 225. In some embodiments, the insertion of DHCP options and/or modification of IP source addresses may be used to characterize restricted and less-restricted subnets, rather then configuring port associations with VLANs as discussed herein. The embodiments discussed herein may work with any access point that supports 802.1x protocols.

While the examples discussed herein are focused on the security status of an access device, in some embodiments the same systems and techniques may be used to qualify other aspects of a device's health. For example, they may be used to monitor software crashes, reliability, connection speed, hardware conflicts, and/or the like. In some embodiments the systems and methods disclosed herein are used to grant access to a protected network from a network device such as a printer that may not be capable of supporting a client side filter or agent. In these embodiments the client side filter and agent are optional.

The embodiments discussed herein are illustrative of the present invention. As these embodiments of the present invention are described with reference to illustrations, various modifications or adaptations of the methods and or specific structures described may become apparent to those skilled in the art. All such modifications, adaptations, or variations that rely upon the teachings of the present invention, and through which these teachings have advanced the art, are considered to be within the spirit and scope of the present invention. Hence, these descriptions and drawings should not be considered in a limiting sense, as it is understood that the present invention is in no way limited to only the embodiments illustrated. 

What is claimed is:
 1. A method for applying a security policy to network devices, the method comprising: performing an authentication from a device connected to an access point; scanning the device; applying a security policy that includes requirements pertaining to the authentication and the active probe, the applying of the security policy taking place at a gatekeeper, the applying of the security policy including applying a security audit, the applying the security audit including an agent collecting audit data, and configuring the access point in response to the security policy. 